using System;
using System.ComponentModel;

namespace SBPweb.Contracts
{
	/// <summary>
	/// Interface of ISaveable
	/// </summary>
	public interface ISaveable
    {
		/// <summary>
		/// Is saved?
		/// </summary>
        bool IsSaved
        {
            get;
        }

		/// <summary>
		/// Is saveable?
		/// </summary>
        bool IsSaveable
        {
            get;
        }

		/// <summary>
		/// Save
		/// </summary>
		/// <returns>success</returns>
        bool Save();

		/// <summary>
		/// Event for save start
		/// </summary>
        event CancelEventHandler Saving;
		/// <summary>
		/// Event for save finish
		/// </summary>
        event EventHandler Saved;
    }
}
